package cn.harry.cabinet.constants

import android.content.Context
import java.io.File

/**
 * 存储路径常量
 * 统一管理应用中的文件存储路径
 */
object StorageConstants {
    
    /**
     * 特征数据根目录名称
     */
    private const val FACE_DATA_DIR = "face_data"
    
    /**
     * 特征码目录名称
     */
    private const val FEATURES_DIR = "features"
    
    /**
     * 图片目录名称
     */
    private const val IMAGES_DIR = "images"
    
    /**
     * 获取特征数据根目录路径
     */
    fun getFeatureRootPath(context: Context): String {
        return context.getExternalFilesDir(null)?.absolutePath + "/$FACE_DATA_DIR"
    }
    
    /**
     * 获取特征码目录路径
     */
    fun getFeatureDir(context: Context): String {
        return "${getFeatureRootPath(context)}/$FEATURES_DIR"
    }
    
    /**
     * 获取图片目录路径
     */
    fun getImageDir(context: Context): String {
        return "${getFeatureRootPath(context)}/$IMAGES_DIR"
    }
    
    /**
     * 确保所有必需的目录都存在
     */
    fun ensureDirectoriesExist(context: Context) {
        File(getFeatureDir(context)).mkdirs()
        File(getImageDir(context)).mkdirs()
    }
    
    /**
     * 获取指定用户的图片文件
     */
    fun getUserImageFile(context: Context, userName: String): File {
        return File(getImageDir(context), "$userName.jpg")
    }
    
    /**
     * 获取指定用户的特征文件
     */
    fun getUserFeatureFile(context: Context, userName: String): File {
        return File(getFeatureDir(context), userName)
    }
}
